package com.zmn.oms.dubbo.dto.zmn.channel;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 类描述：渠道对接 - 支付订单渠道预付款参数定义
 *
 * @author xiewenbing
 * @date 2021/03/19 15:00
 */
@Data
public class ChannelPayOrderDIO implements Serializable {

    private static final long serialVersionUID = -5451666180498665423L;

    /**
     * 渠道ID
     */
    private Integer channelId;

    /**
     * 订单ID
     */
    @NotNull(message = "订单ID不能为空")
    private Long orderId;

    /**
     * 订单支付类型，1：渠道预付，2：渠道二次支付（工程师支付）
     *
     */
    private Integer orderPayType;

    /**
     * 支付时间
     */
    @NotNull(message = "支付时间不能为空")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 支付金额
     */
    @NotNull(message = "支付金额不能为空")
    private Integer payAmount;

    /**
     * 支付备注说明
     */
    private String remark;

    /**
     * 优惠金额
     */
    private Integer discountAmount;

    /**
     * 抵扣师傅收款额（该字段仅二次支付时有效）
     */
    private Boolean subMasterAmount;

    /**
     * 将订单置为完成状态（该字段仅用于二次支付）
     */
    private Boolean completeOrder;

    /**
     * 订单渠道扩展数据
     */
    private String outerData;

    /**
     * 订单是否继续自动流转
     */
    private Boolean orderAutoFlow;

    /**
     * 操作备注
     */
    protected String operatorRemark;
}
